REG_NEWLINE Change the handling of newline characters,
as described in the text.
The default regular expression type for _p_a_t_t_e_r_n is a _BBBB_aaaa_ssss_iiii_cccc _RRRR_eeee_gggg_uuuu_llll_aaaa_rrrr
_EEEE_xxxx_pppp_rrrr_eeee_ssss_ssss_iiii_oooo_nnnn. The application can specify _EEEE_xxxx_tttt_eeee_nnnn_dddd_eeee_dddd _RRRR_eeee_gggg_uuuu_llll_aaaa_rrrr _EEEE_xxxx_pppp_rrrr_eeee_ssss_ssss_iiii_oooo_nnnn_ssss
On successful completion, it returns 0; otherwise it returns non-zero,
and the content of _p_r_e_g is undefined.
If the REG_NOSUB flag was not set in _c_f_l_a_g_s, then _rrrr_eeee_gggg_cccc_oooo_mmmm_pppp() will set
_r_e__n_s_u_b to the number of parenthesised subexpressions (delimited by \( \)
in _bbbb_aaaa_ssss_iiii_cccc _rrrr_eeee_gggg_uuuu_llll_aaaa_rrrr _eeee_xxxx_pppp_rrrr_eeee_ssss_ssss_iiii_oooo_nnnn_ssss or ( ) in _eeee_xxxx_tttt_eeee_nnnn_dddd_eeee_dddd _rrrr_eeee_gggg_uuuu_llll_aaaa_rrrr _eeee_xxxx_pppp_rrrr_eeee_ssss_ssss_iiii_oooo_nnnn_ssss)
found in _p_a_t_t_e_r_n.
The _rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() function compares the null-terminated string specified by
_s_t_r_i_n_g with the compiled regular expression _p_r_e_g initialised by a
previous call to _rrrr_eeee_gggg_cccc_oooo_mmmm_pppp(). If it finds a match, _rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() returns 0;
otherwise it returns non-zero indicating either no match or an error.
The _e_f_l_a_g_s argument is the bitwise inclusive OR of zero or more of the
following flags, which are defined in the header _<<<<_rrrr_eeee_gggg_eeee_xxxx_...._hhhh_>>>>:
REG_NOTBOL The first character of the string pointed to
by _s_t_r_i_n_g is not the beginning of the line.
Therefore, the circumflex character (^), when
taken as a special character, will not match
the beginning of _s_t_r_i_n_g.
REG_NOTEOL The last character of the string pointed to
by _s_t_r_i_n_g is not the end of the line.
Therefore, the dollar sign ($), when taken
as a special character, will not match the
end of _s_t_r_i_n_g.
If _n_m_a_t_c_h is 0 or REG_NOSUB was set in the _c_f_l_a_g_s argument to _rrrr_eeee_gggg_cccc_oooo_mmmm_pppp() ,
then _rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() will ignore the _p_m_a_t_c_h argument. Otherwise, the _p_m_a_t_c_h
argument must point to an array with at least _n_m_a_t_c_h elements, and
_rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() will fill in the elements of that array with offsets of the
substrings of _s_t_r_i_n_g that correspond to the parenthesised subexpressions
of _p_a_t_t_e_r_n: _p_m_a_t_c_h[_i]._r_m__s_o will be the byte offset of the beginning and
_p_m_a_t_c_h[_i]._r_m__e_o will be one greater than the byte offset of the end of
substring i. (Subexpression i begins at the ith matched open parenthesis,
counting from 1.) Offsets in _p_m_a_t_c_h[_0] identify the substring that
corresponds to the entire regular expression. Unused elements of _p_m_a_t_c_h
up to _p_m_a_t_c_h[_n_m_a_t_c_h-_1] will be filled with -1. If there are more than
_n_m_a_t_c_h subexpressions in _p_a_t_t_e_r_n (_p_a_t_t_e_r_n itself counts as a
subexpression), then _rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() will still do the match, but will record
only the first _n_m_a_t_c_h substrings.
When matching a _bbbb_aaaa_ssss_iiii_cccc or _eeee_xxxx_tttt_eeee_nnnn_dddd_eeee_dddd _rrrr_eeee_gggg_uuuu_llll_aaaa_rrrr _eeee_xxxx_pppp_rrrr_eeee_ssss_ssss_iiii_oooo_nnnn, any given
parenthesised subexpression of _p_a_t_t_e_r_n might participate in the match of
several different substrings of _s_t_r_i_n_g, or it might not match any
substring even though the pattern as a whole did match. The following
rules are used to determine which substrings to report in _p_m_a_t_c_h when
given value of _p_r_e_g. If _e_r_r_c_o_d_e is not such a value, the content of the
generated string is unspecified.
If _p_r_e_g is a null pointer, but _e_r_r_c_o_d_e is a value returned by a previous
call to _rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() or _rrrr_eeee_gggg_cccc_oooo_mmmm_pppp(), the _rrrr_eeee_gggg_eeee_rrrr_rrrr_oooo_rrrr() still generates an error
string corresponding to the value of _e_r_r_c_o_d_e.
If the _e_r_r_b_u_f__s_i_z_e argument is not 0, _rrrr_eeee_gggg_eeee_rrrr_rrrr_oooo_rrrr() will place the generated
string into the buffer of size _e_r_r_b_u_f__s_i_z_e bytes pointed to by _e_r_r_b_u_f. If
the string (including the terminating null) cannot fit in the buffer,
_rrrr_eeee_gggg_eeee_rrrr_rrrr_oooo_rrrr() will truncate the string and null-terminate the result.
If _e_r_r_b_u_f__s_i_z_e is 0, _rrrr_eeee_gggg_eeee_rrrr_rrrr_oooo_rrrr() ignores the _e_r_r_b_u_f argument, and returns
the size of the buffer needed to hold the generated string.
If the _p_r_e_g argument to _rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() or _rrrr_eeee_gggg_ffff_rrrr_eeee_eeee() is not a compiled
regular expression returned by _rrrr_eeee_gggg_cccc_oooo_mmmm_pppp() , the result is undefined. A
_p_r_e_g is no longer treated as a compiled regular expression after it is
given to _rrrr_eeee_gggg_ffff_rrrr_eeee_eeee() .
RRRREEEETTTTUUUURRRRNNNN VVVVAAAALLLLUUUUEEEE
On successful completion, the _rrrr_eeee_gggg_cccc_oooo_mmmm_pppp() function returns 0. Otherwise,
it returns an integer value indicating an error as described in
_<<<<_rrrr_eeee_gggg_eeee_xxxx_...._hhhh_>>>>, and the content of _p_r_e_g is undefined.
On successful completion, the _rrrr_eeee_gggg_eeee_xxxx_eeee_cccc() function returns 0. Otherwise
it returns REG_NOMATCH to indicate no match, or REG_ENOSYS to indicate
that the function is not supported.
Upon successful completion, the _rrrr_eeee_gggg_eeee_rrrr_rrrr_oooo_rrrr() function returns the number
of bytes needed to hold the entire generated string. Otherwise, it
returns 0 to indicate that the function is not implemented.
The _rrrr_eeee_gggg_ffff_rrrr_eeee_eeee() function returns no value.